// #include <iostream>

// const int QueueSize = 10;

// class ArrayQueue
// {
// public:
//     ArrayQueue():front(0),rear(0){}
//     //
//     void Push(const int& element)
//     {
//         if((rear + 1) % QueueSize == front)//队列满 front 和 rear 之间差一个元素
//         {
//             return;
//         }
//         a[rear++] = element;
//         rear %= QueueSize;
//     }

//     void Pop()
//     {
//         if(front == rear)
//         {
//             std::cout<<"队列空\n";
//             return;
//         }
//         front++;
//         front %= QueueSize;
//     }
//     //取头元素
//     int *GetFront()
//     {
//         if(front == rear)
//         {
//             std::cout<<"队列空\n";
//             return nullptr;
//         }
//         return &a[front];
//     }

//     bool IsEmpty()
//     {
//         return front == rear;
//     }
// private:
//     int a[QueueSize];
//     int front;//队头指针
//     int rear;//队尾指针
// };

// int main()
// {
//     ArrayQueue q;
//     for(int i = 0;i < 10;i++)
//         q.Push(i + 1);
//     while(q.IsEmpty() == false)
//     {
//         std::cout<<*q.GetFront()<<" ";
//         q.Pop();
//     }
//     std::cout<<std::endl;

//     q.Push(1);
//     while(q.IsEmpty() == false)
//     {
//         std::cout<<*q.GetFront()<<" ";
//         q.Pop();
//     }
//     std::cout<<std::endl;    
//     return 0;
// }